import Vue from "vue";
import axios from "axios";
import { Message, Loading } from "element-ui";
const fs = require('fs');
let token;
let loading;

console.log('----', localStorage.getItem("deptId"))
const serves = axios.create({
  baseURL: Vue.prototype.$api,
  showLoading: true,
  timeoutErrorMessage: "请求超时，请稍后重试",
  timeout: 5000,
  header: {
    "content-type": "application/json",
  },
});
// console.log(serves,'-----')

// 设置请求发送之前的拦截器
serves.interceptors.request.use(
  (config) => {
    config.headers["Authorization"] = "Basic c2FiZXI6c2FiZXJfc2VjcmV0";
    // loading = Loading.service({
    //   lock: true,
    //   text: "拼命加载中...",
    //   spinner: "el-icon-loading", // 自定义图标
    //   background: "rgba(0, 0, 0, 0.7)",
    // });

    config.headers["Blade-Auth"] = `bearer ${localStorage.getItem("token")}`;
    config.headers["Dept-Id"] = localStorage.getItem("deptId");

    // Blade-Auth
    // 设置发送之前数据需要做什么处理
    return config;
  },
  (err) => Promise.reject(err)
);

// 设置请求接受拦截器
serves.interceptors.response.use(
  (res) => {
    // loading.close()
    // 设置接受数据之后，做什么处理
    if (res.data.code === 50000) {
      Message.error(res.data.data);
    } else if (res.data.code == 200) {
      return res.data.data;
    } else if (res.status == 200 && res.data.error_code != 400) {
      return res.data;
    } else {
      Message.error(res.data.data || res.data.error_description);
      return res.data;
    }
  },
  (err) => {
    // loading.close()
    // 判断请求异常信息中是否含有超时timeout字符串
    if (err.message.includes("timeout")) {
      console.log("错误回调", err);
      Message.error("网络超时");
    }
    if (err.message.includes("Network Error")) {
      console.log("错误回调", err);
      Message.error("服务端未启动，或网络连接错误");
    }
    return Promise.reject(err);
  }
);

// 将serves抛出去
export default serves;
